package Iterator

// Iterator [T any]
// @Description: 迭代器接口
type Iterator[T any] interface {
	//
	// HasNext
	//  @Description: 返回一个值表示有无下一个节点
	//  @return bool
	//
	HasNext() bool
	//
	// Next
	//  @Description: 获取下一个节点
	//  @return T
	//
	Next() *T
}

// Iterable [T any]
// @Description: 可迭代对象接口
type Iterable[T any] interface {
	//
	// GetIterator
	//  @Description: 获取迭代器
	//  @return Iterator[T]
	//
	GetIterator() Iterator[T]
}
